# -*- coding: utf-8 -*- 
# @project : 《Atcoder》
# @Author : created by bensonrachel on 2021/8/27
# @File : TPM（step3）E. Knapsack on a Segment （CF）.py

def TPM():
    l = 0
    sum1 = 0
    sum2 = 0
    res = 0
    for r in range(n):
        sum1 += w[r]
        sum2 += c[r]
        while (sum1 > s):
            sum1 -= w[l]
            sum2 -= c[l]
            l += 1
        res = max(res,sum2) # 这个是在while外面的。多次判断。
    return res

"""
此背包问题非DP中的背包问题：此题是双指针的应用 要求连续区间段的最大价值，不同于DP的每个物品的选和不选。
用sum函数计算每个区间的和会超时，因此改用跟w数组同样的计算区间段的和的方式，才不会超时。

根据Step2的A题模板改即可，at most -> max

"""
if __name__ == '__main__':
    n,s = map(int,input().split())
    w = [int(i) for i in input().split()]
    c = [int(i) for i in input().split()]
    res = TPM()
    print(res)